Skip to content

Conversation

@kxxt
Copy link
Contributor

@kxxt kxxt commented Feb 4, 2026

Original commit message:

[riscv] Fix sp handling in MacroAssembler::LeaveFrame

Keep sp <= fp to ensure that data right above fp doesn't get clobbered
by an inopportune signal and its handler.

Such clobbering can happen in e.g. Node.js when JIT-compiled code is
interrupted by a SIGCHLD handler.

Bug: None
Change-Id: Ief0836032ada7942e89f081f7605f61632c4d414
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7540554
Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
Commit-Queue: Yahan Lu (LuYahan) <yahan@iscas.ac.cn>
Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#105069}

Refs: v8/v8@6a0a25a

This V8 backport fixes a long-standing heisenbug that affects riscv64 since at least node.js 16.

nodejs-github-bot and others added 15 commits February 3, 2026 15:08
PR-URL: nodejs#61470
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: nodejs#61514
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
PR-URL: nodejs#61566
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Matthew Aitken <maitken033380023@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Co-authored-by: Сковорода Никита Андреевич <chalkerx@gmail.com>
PR-URL: nodejs#60405
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Update the README to reflect current IBM and Red Hat volunteers
who have dedicated time allocated to the project.

Signed-off-by: Beth Griggs <bethanyngriggs@gmail.com>
PR-URL: nodejs#61588
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Stewart X Addison <sxa@redhat.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Jordan Harband <ljharb@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: nodejs#61553
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Fixes nodejs#61042

Put a period at the end of the line

Co-authored-by: Luigi Pinca <luigipinca@gmail.com>
PR-URL: nodejs#61064
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: nodejs#61495
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Refs: nodejs#60060
PR-URL: nodejs#61532
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com>
Adds test coverage for the removeListener event being emitted
when a once() listener is automatically removed after execution.
This verifies that streams and other EventEmitters correctly
emit removeListener events when once() wrappers clean up.

PR-URL: nodejs#60137
Fixes: nodejs#59977
Reviewed-By: Aviv Keller <me@aviv.sh>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
PR-URL: nodejs#58324
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
PR-URL: nodejs#61509
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
They were missing from the skip pattern due to different naming.

PR-URL: nodejs#61504
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: nodejs#61528
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: nodejs#61593
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Mattias Buelens <mattias@buelens.com>
@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/gyp
  • @nodejs/security-wg
  • @nodejs/v8-update

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. v24.x Issues that can be reproduced on v24.x or PRs targeting the v24.x-staging branch. v8 engine Issues and PRs related to the V8 dependency. labels Feb 4, 2026
kxxt added a commit to kxxt/archriscv-packages that referenced this pull request Feb 4, 2026
- Backport chromium-review.googlesource.com/c/v8/v8/+/7540554 to fix the
  long-standing nodejs heisenbug Sporadic Nodejs segfault on sg2042 revyos/revyos#27.
  Upstream PR: nodejs/node#61670
- `--nocheck` is needed. There is one test failure:

    === release test-repl-paste-big-data ===
    Path: parallel/test-repl-paste-big-data
    node:internal/assert/utils:77
        throw err;
        ^

    AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

      assert.ok(diff.user < 1e6)

        at REPLServer.<anonymous> (/build/nodejs-lts-krypton/src/node/test/parallel/test-repl-paste-big-data.js:22:10)
        at REPLServer.<anonymous> (/build/nodejs-lts-krypton/src/node/test/common/index.js:476:15)
        at Object.onceWrapper (node:events:622:28)
        at REPLServer.emit (node:events:508:28)
        at REPLServer.emit (node:domain:489:12)
        at REPLServer.emitExit (node:repl:850:10)
        at REPLServer.emit (node:events:520:35)
        at REPLServer.emit (node:domain:489:12)
        at REPLServer.close (node:internal/readline/interface:555:10)
        at node:repl:1114:5 {
      generatedMessage: true,
      code: 'ERR_ASSERTION',
      actual: false,
      expected: true,
      operator: '==',
      diff: 'simple'
    }

    Node.js v24.13.0
    Command: out/Release/node /build/nodejs-lts-krypton/src/node/test/parallel/test-repl-paste-big-data.js
nodejs-github-bot and others added 4 commits February 4, 2026 10:57
PR-URL: nodejs#61547
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
PR-URL: nodejs#61547
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
PR-URL: nodejs#59889
Backport-PR-URL: nodejs#61046
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Python v3.14 -- October 7th
* https://www.python.org/download/pre-releases
* https://www.python.org/downloads/release/python-3140rc3

PR-URL: nodejs#59983
Backport-PR-URL: nodejs#61370
Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
Reviewed-By: Stewart X Addison <sxa@redhat.com>
Refs: nodejs#60874
Original commit message:

    [riscv] Fix sp handling in MacroAssembler::LeaveFrame

    Keep sp <= fp to ensure that data right above fp doesn't get clobbered
    by an inopportune signal and its handler.

    Such clobbering can happen in e.g. Node.js when JIT-compiled code is
    interrupted by a SIGCHLD handler.

    Bug: None
    Change-Id: Ief0836032ada7942e89f081f7605f61632c4d414
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7540554
    Reviewed-by: Ji Qiu <qiuji@iscas.ac.cn>
    Commit-Queue: Yahan Lu (LuYahan) <yahan@iscas.ac.cn>
    Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#105069}

Refs: v8/v8@6a0a25a
Co-authored-by: kxxt <rsworktech@outlook.com>
@aduh95 aduh95 added the blocked PRs that are blocked by other issues or PRs. label Feb 4, 2026
@aduh95
Copy link
Contributor

aduh95 commented Feb 4, 2026

Blocked on #61666

felixonmars pushed a commit to felixonmars/archriscv-packages that referenced this pull request Feb 4, 2026
- Backport chromium-review.googlesource.com/c/v8/v8/+/7540554 to fix the
  long-standing nodejs heisenbug Sporadic Nodejs segfault on sg2042 revyos/revyos#27.
  Upstream PR: nodejs/node#61670
- `--nocheck` is needed. There is one test failure:

    === release test-repl-paste-big-data ===
    Path: parallel/test-repl-paste-big-data
    node:internal/assert/utils:77
        throw err;
        ^

    AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

      assert.ok(diff.user < 1e6)

        at REPLServer.<anonymous> (/build/nodejs-lts-krypton/src/node/test/parallel/test-repl-paste-big-data.js:22:10)
        at REPLServer.<anonymous> (/build/nodejs-lts-krypton/src/node/test/common/index.js:476:15)
        at Object.onceWrapper (node:events:622:28)
        at REPLServer.emit (node:events:508:28)
        at REPLServer.emit (node:domain:489:12)
        at REPLServer.emitExit (node:repl:850:10)
        at REPLServer.emit (node:events:520:35)
        at REPLServer.emit (node:domain:489:12)
        at REPLServer.close (node:internal/readline/interface:555:10)
        at node:repl:1114:5 {
      generatedMessage: true,
      code: 'ERR_ASSERTION',
      actual: false,
      expected: true,
      operator: '==',
      diff: 'simple'
    }

    Node.js v24.13.0
    Command: out/Release/node /build/nodejs-lts-krypton/src/node/test/parallel/test-repl-paste-big-data.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked PRs that are blocked by other issues or PRs. build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. v8 engine Issues and PRs related to the V8 dependency. v24.x Issues that can be reproduced on v24.x or PRs targeting the v24.x-staging branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.